Telegram Group & Telegram Channel
ООП (неочевидные плюсы)

По следам последнего видео. У ООПшных языков, есть одна киллер фича и одно удобство, которые редко встречаются в других местах. Сейчас будет шок 🙂

Если у вас структура вызова сущность.метод, вы получаете автокомплит. Если у вас вызов функция(данные), то хрен вам, а не автокомплит. Как вам такое? Является ли это фишкой ооп? Вообще-то нет, да так совпало что в ооп это повсеместно, но это всего лишь вопрос синтаксиса языка. Зацените пример на go:


type User struct {
Name string
}

func (u *User) Greet() {
fmt.Println("Hello,", u.Name)
}

func main() {
user := &User{Name: "Kirill"}
user.Greet() // автокомплит: .Greet
}


И на nim


type User = object
name: string

proc greet(u: User) {.method.} =
echo "Hello, ", u.name

let user = User(name: "Kirill")
user.greet() # автокомплит есть


и rust через трейты:


struct User {
name: String,
}

// trait описан отдельно от User
trait Greet {
fn greet(&self);
}

impl Greet for User {
fn greet(&self) {
println!("Hello, {}", self.name);
}
}

fn main() {
let user = User { name: "Kirill".to_string() };
user.greet(); // автокомплит срабатывает!
}


Ну и аналог (хотя и через классы) это экстеншены в Swift, Kotlin и C#

Кстати это довольно интересно, многие ассоцириуют синтаксис сущность.метод() только с ООП, но как вы видите, это вообще не так.

p.s. А как вы думаете, какая вторая деталь, про которую я упомянул в начале поста ? 🙂

Ссылки: Телеграм | Youtube | VK



tg-me.com/orgprog/329
Create:
Last Update:

ООП (неочевидные плюсы)

По следам последнего видео. У ООПшных языков, есть одна киллер фича и одно удобство, которые редко встречаются в других местах. Сейчас будет шок 🙂

Если у вас структура вызова сущность.метод, вы получаете автокомплит. Если у вас вызов функция(данные), то хрен вам, а не автокомплит. Как вам такое? Является ли это фишкой ооп? Вообще-то нет, да так совпало что в ооп это повсеместно, но это всего лишь вопрос синтаксиса языка. Зацените пример на go:


type User struct {
Name string
}

func (u *User) Greet() {
fmt.Println("Hello,", u.Name)
}

func main() {
user := &User{Name: "Kirill"}
user.Greet() // автокомплит: .Greet
}


И на nim


type User = object
name: string

proc greet(u: User) {.method.} =
echo "Hello, ", u.name

let user = User(name: "Kirill")
user.greet() # автокомплит есть


и rust через трейты:


struct User {
name: String,
}

// trait описан отдельно от User
trait Greet {
fn greet(&self);
}

impl Greet for User {
fn greet(&self) {
println!("Hello, {}", self.name);
}
}

fn main() {
let user = User { name: "Kirill".to_string() };
user.greet(); // автокомплит срабатывает!
}


Ну и аналог (хотя и через классы) это экстеншены в Swift, Kotlin и C#

Кстати это довольно интересно, многие ассоцириуют синтаксис сущность.метод() только с ООП, но как вы видите, это вообще не так.

p.s. А как вы думаете, какая вторая деталь, про которую я упомянул в начале поста ? 🙂

Ссылки: Телеграм | Youtube | VK

BY Организованное программирование | Кирилл Мокевнин




Share with your friend now:
tg-me.com/orgprog/329

View MORE
Open in Telegram


Организованное программирование | Кирилл Мокевнин Telegram | DID YOU KNOW?

Date: |

Tata Power whose core business is to generate, transmit and distribute electricity has made no money to investors in the last one decade. That is a big blunder considering it is one of the largest power generation companies in the country. One of the reasons is the company's huge debt levels which stood at ₹43,559 crore at the end of March 2021 compared to the company’s market capitalisation of ₹44,447 crore.

Организованное программирование | Кирилл Мокевнин from vn


Telegram Организованное программирование | Кирилл Мокевнин
FROM USA